#!/bin/bash

echo "========================================================================="
echo "                  无人机管理系统启动脚本 (Linux/Unix)"
echo "========================================================================="
echo "此脚本将自动配置环境、安装依赖并启动后端服务和PX4模拟器"
echo "========================================================================="

# 检查Python版本
if ! command -v python3 &> /dev/null; then
    echo "错误：未找到Python环境，请先安装Python 3.7+"
    echo "请使用: sudo apt install python3 python3-venv python3-pip (Ubuntu/Debian)"
    exit 1
fi

# 检查Python版本号
PYTHON_VERSION=$(python3 -c 'import sys; print(sys.version_info[1])')
if [ $PYTHON_VERSION -lt 7 ]; then
    echo "错误：Python版本过低，请安装Python 3.7或更高版本"
    exit 1
fi

# 创建虚拟环境（如果不存在）
if [ ! -d "venv" ]; then
    echo "创建Python虚拟环境..."
    python3 -m venv venv
    if [ $? -ne 0 ]; then
        echo "错误：创建虚拟环境失败"
        exit 1
    fi
    echo "虚拟环境创建成功"
fi

# 激活虚拟环境
echo "激活Python虚拟环境..."
source venv/bin/activate

# 升级pip
echo "升级pip..."
pip install --upgrade pip > /dev/null 2>&1

# 安装依赖
echo "安装项目依赖..."
pip install -r backend/requirements.txt > /dev/null 2>&1
pip install requests > /dev/null 2>&1

# 初始化数据库（如果需要）
echo "检查数据库状态..."
if [ ! -f "backend/data.db" ]; then
    echo "数据库文件不存在，正在初始化..."
    echo "注意：根据您的实际需求，可能需要手动配置数据库"
    echo "请查看 backend/config.py 文件进行数据库配置"
fi

# 启动后端服务
echo "========================================================================="
echo "正在启动后端服务..."
echo "========================================================================="
# 在后台启动后端服务
cd backend && python3 main.py &
BACKEND_PID=$!

# 等待后端服务启动
echo "等待后端服务启动..."
sleep 5

# 启动PX4模拟器
echo "========================================================================="
echo "正在启动PX4飞控模拟器..."
echo "========================================================================="
# 在后台启动PX4模拟器
cd ../px4 && python3 px4_control_simulator.py &
PX4_PID=$!

echo "========================================================================="
echo "启动完成！"
echo "========================================================================="
echo "后端服务地址: http://localhost:8000"
echo "API文档地址: http://localhost:8000/docs"
echo "前端访问地址: 请参考前端启动说明"
echo "PX4模拟器已在后台启动"
echo "后端服务PID: $BACKEND_PID"
echo "PX4模拟器PID: $PX4_PID"

echo ""
echo "使用说明:"
echo "1. 两个服务都在后台运行"
echo "2. 如需查看日志，请使用: tail -f [日志文件]"
echo "3. 如需停止服务，请使用: kill $BACKEND_PID $PX4_PID"
echo "4. 如需重新启动，请先停止现有服务再运行此脚本"
echo "========================================================================="

echo "按Enter键退出此脚本（服务将继续在后台运行）..."
read